﻿using UnityEngine;
using UnityEditor;

namespace Obi
{ 
    [CustomPropertyDrawer(typeof(ObiBone.BonePropertyCurve))]
    public class BonePropertyCurveDrawer : PropertyDrawer
    {
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            EditorGUI.BeginProperty(position, label, property);

            float curveFieldWidth = (position.width - EditorGUIUtility.labelWidth) * 0.5f;

            var multRect = new Rect(position.x, position.y, position.width - curveFieldWidth, position.height);
            EditorGUI.PropertyField(multRect, property.FindPropertyRelative("multiplier"), label);

            var indent = EditorGUI.indentLevel;
            EditorGUI.indentLevel = 0;

            var curveRect = new Rect(position.x + position.width - curveFieldWidth + 3, position.y, curveFieldWidth - 3, position.height);
            EditorGUI.CurveField(curveRect, property.FindPropertyRelative("curve"), Color.green, new Rect(0, 0, 1, 1), GUIContent.none);

            EditorGUI.indentLevel = indent;

            EditorGUI.EndProperty();
        }
    }
}
